package com.ccxc.question.exam.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.ccxc.question.exam.dao.InformationDAO;
import com.ccxc.question.exam.dao.OperationDAO;
import com.ccxc.question.exam.dao.QuestionOptionDAO;
import com.ccxc.question.exam.dto.AreaDTO2;
import com.ccxc.question.exam.dto.DailyDTO;
import com.ccxc.question.exam.dto.ErrorDTO;
import com.ccxc.question.exam.dto.RankingDTO;
import com.ccxc.question.exam.dto.SummaryDTO;
import lombok.extern.slf4j.Slf4j;


@Service
@Transactional
@Slf4j
public class InformationService {

    @Autowired
    private InformationDAO informationDao;
    @Autowired
    private QuestionOptionDAO questionOptionDao;
    @Autowired
    private OperationDAO operationDao;

    /**
     * @DEscription 功能说明  查看用户每日答题信息
     * 参数说明：
     */
    @Transactional(readOnly = true)
    public List<DailyDTO> findByuserId(String id) {
        List<DailyDTO> dailyDto = informationDao.findByuserId(id);
        return dailyDto;
    }

    /**
     * @DEscription 功能说明  查看用户答题汇总
     * 参数说明：
     */
    @Transactional(readOnly = true)
    public SummaryDTO findByuserId2(String id) {
        SummaryDTO summaryDto = informationDao.findByuserId2(id);
        log.info("=====查询=====" + String.valueOf(summaryDto));
        return summaryDto;
    }

    /**
     * @DEscription 功能说明  查看答题排名前50名的用户
     * 参数说明：
     */
    public List<RankingDTO> ranking() {
        List<RankingDTO> rankingDto = informationDao.ranking();
        return rankingDto;
    }

    /**
     * @DEscription 功能说明 查看自己擅长领域
     * 参数说明：
     */
    public List<AreaDTO2> area(String id) {
        List<AreaDTO2> operationDto = informationDao.area(id);
        return operationDto;
    }

    /**
     * @DEscription 功能说明 查看错题
     * 参数说明：
     */
    public List<ErrorDTO> error(String id) {
        List<ErrorDTO> errorDtolist = informationDao.error(id);
        if (null != errorDtolist) {
            for (ErrorDTO e : errorDtolist) {
                e.setOptions(questionOptionDao.findByTestId2(e.getQueid()));
            }
        }
        return errorDtolist;
    }

    /**
     * @DEscription 功能说明 查看用户自己的排名
     * 参数说明：
     */
    public int Userranking(String id) {
        int ranking = informationDao.userranking(id);
        return ranking;
    }

    /**
     * @DEscription 功能说明 注册初始化答题汇总表
     * 参数说明：
     */
    public void bulid2(String userid) {
        if (operationDao.judge2(userid)) {
            operationDao.build2(userid);
        }      
    }
    
    public boolean judgeuserid(String userid) {
    	if (operationDao.judge3(userid)) {
			return true;
		}
        else {
	           return false;
              }
	}
}
